package com.liujit.upms.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.liujit.common.domain.result.DictItem;
import com.liujit.upms.domain.model.SysDictItem;
import com.liujit.upms.domain.params.SysDictItemParams;
import com.liujit.upms.domain.query.SysDictItemQuery;
import com.liujit.upms.domain.result.SysDictItemResult;
import com.liujit.common.domain.params.BaseParams;
import com.liujit.common.domain.result.PageBean;

import java.util.List;

/**
 * @Description 系统字典数据Service
 * @Author liujun
 * @Date 2021-07-02 14:52:34
 */
public interface SysDictItemService extends IService<SysDictItem> {

    /**
     * 根据系统字典数据分页查询条件，分页查询系统字典数据列表
     *
     * @param query 系统字典数据分页查询条件
     * @return 分页列表结果
     * @author: liujun
     * @date: 2021/6/23 5:02 下午
     */
    PageBean<SysDictItemResult> getPage(SysDictItemQuery query);

    /**
     * 根据系统字典数据添加/修改请求参数，添加/修改系统字典数据
     *
     * @param params 系统字典数据添加/修改请求参数
     * @return 添加/修改结果
     * @author: liujun
     * @date: 2021-07-02 14:52:34
     */
    Boolean save(SysDictItemParams params);

    /**
     * 根据系统字典数据id，查询系统字典数据
     *
     * @param id 系统字典数据id
     * @return 查询结果
     * @author: liujun
     * @date: 2021-07-02 14:52:34
     */
    SysDictItemResult get(Long id);

    /**
     * 根据系统字典数据删除请求参数，删除系统字典数据
     *
     * @param params 系统字典数据删除请求参数
     * @return 删除结果
     * @author: liujun
     * @date: 2021-07-02 14:52:34
     */
    Boolean del(BaseParams params);

    /**
     * 根据系统字典数据启用请求参数，启用系统字典数据
     *
     * @param params 系统字典数据启用请求参数
     * @return 启用结果
     * @author: liujun
     * @date: 2021-07-02 14:52:34
     */
    Boolean enabled(BaseParams params);

    /**
     * 根据系统字典数据禁用请求参数，禁用系统字典数据
     *
     * @param params 系统字典数据禁用请求参数
     * @return 禁用结果
     * @author: liujun
     * @date: 2021-07-02 14:52:34
     */
    Boolean disabled(BaseParams params);

    /**
     * 根据系统字典数据，查询系统字典条数
     *
     * @param id    系统字典数据id
     * @param label 系统字典数据
     * @return 系统字典条数
     * @author: liujun
     * @date: 2021/7/2 4:44 下午
     */
    Integer getCountByLabel(Long id, String label);

    /**
     * 根据系统字典数据，查询系统字典条数
     *
     * @param id    系统字典数据id
     * @param value 系统字典数据
     * @return 系统字典条数
     * @author: liujun
     * @date: 2021/7/2 4:44 下午
     */
    Integer getCountByValue(Long id, String value);

    /**
     * 根据系统字典数据编号，查询系统字典列表
     *
     * @param code 字典数据编号
     * @return
     * @author: liujun 系统字典
     * @date: 2021/7/8 5:35 下午
     */
    List<DictItem> getDictItem(String code);
}
